﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BemEstarEmprego.DALL;
using BemEstarEmprego.Entities;
namespace BemEstarEmprego.BLL
{
	public class CandidatoBLL
	{

		/// <summary>
		/// Utilizado para testar o retorno de uma operação
		/// </summary>
		Int32 retorno;

		public Boolean Save(pessoa _pessoa)
		{
			try
			{
				using (bemestar_empregoEntities context = new bemestar_empregoEntities())
				{

					//USUARIO
					_pessoa.usuario = new usuario() { LOGIN = _pessoa.usuario.LOGIN, SENHA = _pessoa.usuario.SENHA };
					context.usuario.Attach(_pessoa.usuario);

					//TIPO USUARIO
					_pessoa.usuario.tipo_usuario = new UserQueries().BuscaTipoUsuario(2, context);

					//ENDERECO
					context.endereco.Attach(_pessoa.endereco);

					context.ObjectStateManager.ChangeObjectState(_pessoa, System.Data.EntityState.Added);
					context.ObjectStateManager.ChangeObjectState(_pessoa.usuario, System.Data.EntityState.Added);
					context.ObjectStateManager.ChangeObjectState(_pessoa.endereco, System.Data.EntityState.Added);

					context.pessoa.AddObject(_pessoa);

					return context.SaveChanges() > 0;
				};
			}
			catch
			{
				return false;
			}
		}

		public bool UpdateCandidato(pessoa candidato)
		{
			try
			{

				using (bemestar_empregoEntities context = new bemestar_empregoEntities())
				{
					pessoa editCandidato = context.pessoa.Where(x => x.ID == candidato.ID).FirstOrDefault<pessoa>();

					editCandidato.NOME = candidato.NOME;
					editCandidato.CPF = candidato.CPF;
					editCandidato.RG = candidato.RG;
					editCandidato.EMAIL = candidato.EMAIL;
					editCandidato.ORGAO_EMISSAO = candidato.ORGAO_EMISSAO;
					editCandidato.DATA_NASCIMENTO = candidato.DATA_NASCIMENTO;
					editCandidato.TELEFONE = candidato.TELEFONE;
					editCandidato.CELULAR = candidato.CELULAR;

					retorno = context.SaveChanges(System.Data.Objects.SaveOptions.None);
					return retorno > 1;
				}
			}
			catch (Exception)
			{
				return false;
			}
		}
	}
}
